package pe.edu.upc.dew.Grupo1.dao;

import java.util.List;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;

import pe.edu.upc.dew.Grupo1.model.Cine;
import pe.edu.upc.dew.Grupo1.model.Tarifa;

public class TarifaDaoJdbc  extends SimpleJdbcDaoSupport implements TarifaDao{

	@Override
	public void insert(Tarifa tarifa) {
		getSimpleJdbcTemplate().update("insert into tarifa(CodigoTarifa,CodigoLocal,TipoCliente,Dia,Precio) values(?,?,?,?,?)",
				tarifa.getCodigoTarifa(),tarifa.getLocal().getCodigoLocal(),tarifa.getTipoCliente(),tarifa.getDia(),tarifa.getPrecio());
	}

	@Override
	public Tarifa getTarifaPorCodigo(int codigo) {
		return getSimpleJdbcTemplate().
		queryForObject("select CodigoTarifa,CodigoLocal,TipoCliente,Dia,Precio from `tarifa` where CodigoTarifa = ?", 
		new BeanPropertyRowMapper<Tarifa>(Tarifa.class), codigo);
	}

	@Override
	public void deleteTarifaPorCodigo(int codigo) {
		getSimpleJdbcTemplate().update("delete from `tarifa` where CodigoTarifa=?",codigo);
	}

	@Override
	public void updatePorCodigo(Tarifa tarifa) {
		getSimpleJdbcTemplate().
		update("update `tarifa` set CodigoLocal=?,TipoCliente=?,Dia=?,Precio=? where CodigoTarifa=?", 
				tarifa.getLocal().getCodigoLocal(),tarifa.getTipoCliente(),tarifa.getDia(),tarifa.getPrecio(),tarifa.getCodigoTarifa());
	}

	@Override
	public List<Tarifa> getTarifasTipoCliente(String tipoCliente) {
		return getSimpleJdbcTemplate().
		query("select CodigoTarifa,CodigoLocal,TipoCliente,Dia,Precio from `tarifa` where TipoCliente=?", 
		new BeanPropertyRowMapper<Tarifa>(Tarifa.class),tipoCliente);
	}

	@Override
	public int getConteoTarifas() {
		return getSimpleJdbcTemplate().queryForInt("select count(*) from `tarifa`");
	}

}
